[IAD-BACKEND-003] Создать метод /api/v1/auth/login

Разработка auth-identity-service (Backend): Реализация REST-метода аутентификации и генерации сессий.

Author

IAD Domain Lead

Published

July 13, 2026

NoteКраткая карточка задачи
  • Эпик: EPIC-IAD-001
  • Компонент: auth-identity-service (FastAPI)
  • Статус: Готово к реализации
  • Ссылка на Метод: /api/v1/auth/login

1. Бизнес-контекст и цель (Business Context)

Для входа в систему необходимо проверять учетные данные пользователя и генерировать ему пару JWT токенов (Access + Refresh), упаковывая контекст группы (home_group_id и account_type) прямо в Payload.

Цель задачи: Реализовать эндпоинт /api/v1/auth/login, верифицирующий сессию и отдающий токены устройства в файле login.py.

2. Пользовательские истории (User Stories)

Как Зарегистрированный пользователь приложения FoodLifeCycle,
Я хочу вводить свой логин и пароль в форму входа,
Чтобы получить актуальный токен доступа к своему холодильнику.


Задача 1: Разработка эндпоинтов авторизации, обновления сессий и логаута на API Gateway

  • Репозиторий / Компонент: backend-api (API Gateway).
  • Контракт методов:
    1. POST /api/v1/auth/register (или /login)
    2. POST /api/v1/auth/refresh
    3. POST /api/v1/auth/logout
  • Инструкция по шагам:
    1. На Шагах 1-3: Написать эндпоинты аутентификации. Реализовать первичную Pydantic-валидацию входящего тела (поля email, password) и пробросить запрос по внутреннему gRPC/HTTP протоколу в auth-service.
    2. На Шагах 9-11: Для эндпоинта ротации токенов принимать в теле запроса current_refresh_token. Вызывать внутренний синхронный gRPC-метод авторизационного воркера VerifyAndRotate.
    3. На Шагах 15-17: Для эндпоинта logout извлекать строку Access Token из заголовка Authorization: Bearer <token> и Refresh Token из тела запроса. Направлять команду на отзыв сессии в auth-service. Возвращать клиенту статус 200 OK (Шаг 20).